Spot Eye Modbus Åë½Å µå¶óÀ̹ö

 

Spot Eye Modbus´Â ±¹³» ¢ßÄÚ´ÚÆ®ÀÇ Spot Eye Àåºñ¿Í Modbus Åë½ÅÀ» À§ÇÑ µå¶óÀ̹öÀÌ´Ù.

 

 

1. Àб⠼³Á¤

 

<±×¸² 1>Àº Spot Eye Modbus Åë½Å µå¶óÀ̹ö¸¦ »ç¿ëÇÒ ¶§ÀÇ Åë½Å¼³Á¤ ¿¹ÀÌ´Ù.

 

             <±×¸² 1> Spot Eye Modbus Åë½Å¼³Á¤ ¿¹

 

<±×¸² 1>ÀÇ DEVICE ¼³Á¤Àº ¿¬°áµÈ Åë½ÅÆ÷Æ®(COM1), Åë½Å¼Óµµ( 19200 ), Parity Bit ( 0 ), Data Bit ( 8 ), Stop Bit ( 1 ), ¼øÀ¸·Î Àåºñ¿¡ ¼³Á¤µÈ °ªÀ» ÀÔ·ÂÇÑ´Ù.

Spot Eye Modbus Åë½Å µå¶óÀ̹öÀÇ ¿É¼Ç ºÎ ¿¡´Â ÀÐÀº ÆÐŶÀÇ CRC üũ ¿©ºÎ( 1 = üũ ÇÔ, 0 = üũ ¾ÈÇÔ )¸¦ ÀÔ·ÂÇÑ´Ù.

 

Spot Eye Modbus Åë½Å µå¶óÀ̺êÀÇ Àбâ ÀÛ¼º Çü½Ä

Spot Eye Modbus Åë½Å µå¶óÀ̹öÀÇ Àбâ Çü½ÄÀº ´ÙÀ½°ú °°Àº ÀÎÀÚ ¼øÀ¸·Î »ç¿ëÇÑ´Ù.

1)      STATION – ¿¬°áµÈ ÀåºñÀÇ ½ºÅ×À̼Ç( ID ) ¹øÈ£. (0 ~ 255)

2)      ÀÐÀ» µ¥ÀÌÅÍ Á¾·ù – ÀÐÀ» µ¥ÀÌÅÍÀÇ Á¾·ù¸¦ ¼³Á¤.

3 – WORD ´ÜÀ§ÀÇ µ¥ÀÌÅÍ Àбâ,

3)      ÀÐÀ» ÁÖ¼Ò – ÀÐÀ» ½ÃÀÛ¹øÁö. (Modbus ÁÖ¼Ò –1 )

4)      Åë½Å ¸Þ¸ð¸® ÀúÀå À§Ä¡ – ÀÐÀº °ªÀ» ÀúÀåÇÒ ½ÃÀÛ¹øÁö.

5)      Àд ũ±â - Àоî¿Ã µ¥ÀÌÅÍ ¼ö. ( WORD ´ÜÀ§ )

 

Àб⠿¹

READ,     1,     3,     0,    0,  15,

 

<±×¸² 1> ÇÁ·ÎÅäÄÝ ¿É¼ÇºÎÀÇ 2 ¾ÆÀÌÄÜÀ» Ŭ¸¯Çϸé <±×¸² 3>ÀÇ ´ëÈ­»óÀÚ°¡ ³ªÅ¸³ª´Âµ¥ ¿©±â¼­µµ Àбâ Çü½ÄÀ» ÀÛ¼ºÇÒ ¼ö ÀÖ´Ù.

 

<±×¸² 2> Spot Eye Modbus µå¶óÀ̹öÀÇ Åë½Å Àб⠼³Á¤ ´ëÈ­»óÀÚ

 

<±×¸² 2>ÀÇ 3, 4, 5 ¹öÅÏ°ú ¸®½ºÆ® ¹Ú½º¸¦ ÀÌ¿ëÇÏ¿© Àбâ Çü½ÄÀ» ÀÛ¼ºÇÑ´Ù.

<±×¸² 2>ÀÇ ¡®Check CRC Error¡¯ ºÎºÐ¿¡¼­µµ ÀÐÀº ÆÐŶÀÇ CRC üũ¿©ºÎ¸¦ ¼³Á¤ÇÒ ¼ö ÀÖ´Ù.

 

<±×¸² 3> Spot Eye Modbus µå¶óÀ̹öÀÇ Åë½Å Àб⠼³Á¤ READ Ãß°¡/ÆíÁý ´ëÈ­»óÀÚÀÇ ¿¹

 

 

<±×¸² 3>´Â <±×¸² 2>ÀÇ ´ëÈ­»óÀÚ¿¡¼­ READ ½ºÄÉÁìÀ» Ãß°¡ ¶Ç´Â ÆíÁýÇÒ ¶§ ³ªÅ¸³ª´Â ´ëÈ­»óÀÚÀÌ´Ù.

 

  

2. ¾²±â ¼³Á¤

Spot Eye Modbus µå¶óÀ̹öÀÇ ¾²±â ¼³Á¤À¸·Î ƯÁ¤ÇÑ ¿µ¿ªÀÇ °ªÀ» º¯°æÇÒ ¼ö ÀÖ´Ù.

 

µðÁöÅÐ Ãâ·Â ¼³Á¤¹ý

µðÁöÅÐ Ãâ·ÂÀ¸·Î ÀåºñÀÇ »óÅ °ª(reset µî)À» ¼³Á¤Çϰųª Relay µîÀ» Á¦¾îÇÒ ¼ö ÀÖ´Ù.

 

µðÁöÅÐ Ãâ·Â TAG ¼³Á¤ ½Ã ÇÊ¿äÇÑ ¿ä¼Ò

1) PORT           ¿¬°áµÈ PORT ¹øÈ£.

2) STATION      ÀåºñÀÇ ½ºÅ×À̼Ç( ID ) ¹øÈ£.(0 ~ 255)

3) Address      Ãâ·Â ¶Ç´Â Àб⠽ÃÀÛ¹øÁö. 10Áø¼ö ´ÜÀ§ÀÇ Ãâ·Â¹øÁö. (Modbus ¹øÁö – 1 )

4) Extra1          Ãâ·Â ¶Ç´Â ÀаíÀÚ ÇÏ´Â µ¥ÀÌÅÍ Á¾·ù.

15 – BIT ´ÜÀ§ÀÇ µ¥ÀÌÅÍ ¾²±â,

READ.x.y – x = ÀÐÀ» µ¥ÀÌÅÍ Á¾·ù(±âº» = 3), y = ÀÐÀ» µ¥ÀÌÅÍÀÇ Å©±â(±âº» = 15, WORD ´ÜÀ§)

5) Extra2          Extra1 ÀÌ 15 ÀÏ ¶§ : »ç¿ë¾ÈÇÔ.

                       Extra1 ÀÌ READ.x.y ÀÏ ¶§ : ÀÐÀº °ªÀ» ÀúÀåÇÒ ½ÃÀÛ¹øÁö.

 

 

¾Æ³¯·Î±× Ãâ·Â ¼³Á¤¹ý

¾Æ³¯·Î±× Ãâ·ÂÀº WORD µîÀÇ ´ÜÀ§·Î Àåºñ¿¡ ¼³Á¤ °ªÀ» Àü¼ÛÇÒ ¼ö ÀÖ´Ù.

 

¾Æ³¯·Î±× Ãâ·Â TAG ¼³Á¤ ½Ã ÇÊ¿äÇÑ ¿ä¼Ò

1) PORT           ¿¬°áµÈ PORT ¹øÈ£.

2) STATION      ÀåºñÀÇ ½ºÅ×À̼Ç( ID ) ¹øÈ£.(0 ~ 255)

3) Address      Ãâ·Â ¶Ç´Â Àб⠽ÃÀÛ¹øÁö. 10Áø¼ö ´ÜÀ§ÀÇ Ãâ·Â¹øÁö. (Modbus ¹øÁö – 1 )

4) Extra1          Ãâ·Â ¶Ç´Â ÀаíÀÚ ÇÏ´Â µ¥ÀÌÅÍ Á¾·ù.

16 – WORD ´ÜÀ§ÀÇ µ¥ÀÌÅÍ ¾²±â,

READ.x.y – x = ÀÐÀ» µ¥ÀÌÅÍ Á¾·ù(±âº» = 3), y = ÀÐÀ» µ¥ÀÌÅÍÀÇ Å©±â(±âº» = 15, WORD ´ÜÀ§)

5) Extra2          Extra1 ÀÌ READ.x.y ÀÏ ¶§ : ÀÐÀº °ªÀ» ÀúÀåÇÒ ½ÃÀÛ¹øÁö.

Extra1 ÀÇ °ªÀÌ 16 ¶Ç´Â ±âŸ °ªÀÏ ¶§

1 = ¸ÖƼ ¾²±â °ª ÀúÀå,  ( Extar1 ¿µ¿ªÀº »ó°ü¾ÈÇÔ )

2 = ÇöÀç ÀúÀåµÈ °ªÀ¸·Î ¸ÖƼ ¾²±â °ª ¾²±â, ( ÇöÀç ¼³Á¤ÇÑ ¹øÁöºÎÅÍ ÀúÀåµÈ °³¼ö ¸¸Å­ ¿¬¼Ó ¾²±â )

3 = ¸ÖƼ ¾²±â °ªÀ¸·Î ÀúÀåµÈ ¸ðµç ³»¿ëÀ» »èÁ¦, ( Extar1 ¿µ¿ªÀº »ó°ü¾ÈÇÔ )

4 = ÇöÀç ÀúÀåµÈ °ª°ú PLC ¸Þ¸ð¸® ¹øÁö °ªÀ» ºñ±³, ( ÇöÀç ¼³Á¤ÇÑ ¹øÁöºÎÅÍ ÀúÀåµÈ °³¼ö ¸¸Å­ ¿¬¼Ó ¾²±â )

±âŸ °ª( 0 ¶Ç´Â 4º¸´Ù Ŭ ¶§ ) = ÀϹÝ( ÇϳªÀÇ ) ¾Æ³¯·Î±× °ª ¾²±â

 

 ¼³Á¤ ¿¹1)

PORT : 0   STATION : 1   ADDRESS : 0000  EXTRA1 : 16  EXTRA2 : 0 À¸·Î ¼³Á¤ÇÏ°í ¾Æ³¯·Î±× Ãâ·ÂÀ» Çϸé 0 ¹ø Æ÷Æ®¿¡ ¿¬°áµÈ Spot Eye Modbus ÀåºñÀÇ PLCÀÇ N7 ¸Þ¸ð¸®ÀÇ 0¹øÁö(ù ¹ø°) °ªÀ» ¼³Á¤(WORD ´ÜÀ§)ÇÒ ¼ö ÀÖ´Ù.

 

¼³Á¤ ¿¹2)

PORT : 0   STATION : 1   ADDRESS : 0012  EXTRA1 : 16  EXTRA2 : 0 À¸·Î ¼³Á¤ÇÏ°í ¾Æ³¯·Î±× Ãâ·ÂÀ» Çϸé 0 ¹ø Æ÷Æ®¿¡ ¿¬°áµÈ Spot Eye Modbus ÀåºñÀÇ F8 ¸Þ¸ð¸®ÀÇ 12¹øÁö(13¹ø°) °ªÀ» FLOAT ´ÜÀ§·Î ¼³Á¤(2 WORD)ÇÒ ¼ö ÀÖ´Ù.

 

¸ÖƼ ¿öµå ¾²±â ¼³Á¤À» À§ÇÑ ½ºÅ©¸³Æ® ÀÛ¼º ¿¹)

$AO_0000.Extra2 = 3;                                            // ÀÌÀü¿¡ ÀúÀåµÈ ¸ÖƼ ¾²±â °ª »èÁ¦

@SetTagValue("AO_0000", 0);

 

$AO_0000.Extra2 = 1;                                            // ¸ÖƼ ¾²±â °ª ÀúÀåÀ¸·Î ¼³Á¤

for(i = 0; i < 50; i = i + 1) {

   @sprintf($AO_0000.Extra1, "%03d", i);               // Extra1 ¿¡ ÀÓÀÇÀÇ °ªÀ» ³Ö¾î¼­ µ¿ÀÏÇÑ µ¥ÀÌÅ͸¦ ¹«½ÃÇÏÁö ¾Êµµ·Ï ¼³Á¤

   @SetTagValue("AO_0000", 5000);                      // ½ÇÁ¦ Ãâ·Â °ª ÀúÀå, ¿©±â¼­´Â 5000 À¸·Î ÀÓÀÇ ÀúÀå

}

@sprintf($AO_0000.Extra1, "16");              // Ãâ·ÂÇÒ µ¥ÀÌÅÍ Á¾·ù = WORD ´ÜÀ§·Î ¼³Á¤

$AO_0000.Extra2 = 2;                                            // ¸ÖƼ °ª ¾²±â ÁöÁ¤

@SetTagValue("AO_0000", 1);                               // °ª ¾²±â, 50°³ °ªÀ» ÁöÁ¤ÇÑ ¹øÁöºÎÅÍ Ãâ·Â

 

 

PLC¿¡ ÇöÀç °ª°ú ¸Þ¸ð¸® °ªÀÌ µ¿ÀÏÇÑÁö¸¦ È®ÀÎÇϱâ À§ÇÑ ½ºÅ©¸³Æ® ÀÛ¼º ¿¹)

$AO_CHECK_MEM_SET = 2;                                     // ºñ±³¿Ï·á È®ÀÎÀ» À§ÇÑ WORD ¹øÁö¸¦ 2·Î ¼³Á¤

for(i = 0; i < 1; ) {

   if($AI_CHECK_WRITE_STATUS == 2) i = 10;           // 2ÀÇ °ª ¾²±â°¡ ¿Ï·áµÇ¾ú´Ù.

   @TagCheckLoop();                                             // ÅÂ±× °ª º¯°æ È®ÀÎ ÇÔ¼ö

}

 

$AO_0000.Extra2 = 3;                                                // ÀÌÀü¿¡ ÀúÀåµÈ µ¥ÀÌÅÍ °ª »èÁ¦

@SetTagValue("AO_0000", 0);

 

$AO_0000.Extra2 = 1;                                                // µ¥ÀÌÅÍ °ª ÀúÀåÀ¸·Î ¼³Á¤

for(i = 0; i < 50; i = i + 1) {

   @sprintf($AO_0000.Extra1, "%03d", i);                   // Extra1 ¿¡ ÀÓÀÇÀÇ °ªÀ» ³Ö¾î¼­ µ¿ÀÏÇÑ µ¥ÀÌÅ͸¦ ¹«½ÃÇÏÁö ¾Êµµ·Ï ¼³Á¤

   @SetTagValue("AO_0000", 5000);                         // ºñ±³ÇÒ °ª ÀúÀå, ¿©±â¼­´Â 5000 À¸·Î ÀÓÀÇ ÀúÀå

}

@sprintf($AO_0000.Extra1, "16");                               // ºñ±³ÇÒ µ¥ÀÌÅÍ Á¾·ù = WORD·Î ¼³Á¤

$AO_0000.Extra2 = 4;                                                // ÀÚ·á °ª ºñ±³ ÁöÁ¤

@SetTagValue("AO_0000", 1);                                   // ÁöÁ¤ÇÑ ¹øÁöºÎÅÍ, ÀÔ·ÂÇÑ ¼ö ¸¸Å­ÀÇ µ¥ÀÌÅ͸¦ ºñ±³Ç϶ó´Â ¸í·É

 

for(i = 0; i < 1; ) {

   if($AI_CHECK_WRITE_STATUS == 1) i = 10;           // ºñ±³ÇÑ °á°ú 1 = µ¿ÀÏ µ¥ÀÌÅÍ

   if($AI_CHECK_WRITE_STATUS == 0) {                  // ºñ±³ÇÑ °á°ú 0 = ´Ù¸¥ µ¥ÀÌÅÍ Á¸Àç

      @MessageBox("ºñ±³ ÀÚ·áÀÇ ³»¿ëÀÌ ¼­·Î ´Ù¸¨´Ï´Ù.", "ÀÚ·áºñ±³ ¿¡·¯", MB_OK);

      return;

   }

   @TagCheckLoop();                                             // ÅÂ±× °ª º¯°æ È®ÀÎ ÇÔ¼ö

}

@MessageBox("ºñ±³ÇÑ ÀÚ·áÀÇ ³»¿ëÀÌ µ¿ÀÏÇÕ´Ï´Ù.", "ÀÚ·áºñ±³ ¿Ï·á", MB_OK);

 

 

ºñ±³¸¦ À§ÇÑ ½ºÅ©¸³Æ® ÀÛ¼º ½Ã ÁÖÀÇÁ¡)

1) ºñ±³ °á°ú´Â ¿É¼Ç¿¡¼­ ¼³Á¤ÇÑ WORD ¸Þ¸ð¸® ¹øÁö¿¡ 1 ( µ¿ÀÏ µ¥ÀÌÅÍ ), 0 ( ¼­·Î ´Ù¸¥ µ¥ÀÌÅÍ )À¸·Î ÀúÀå.

2) ÀåºñÀÇ ÇöÀç °ª°ú ºñ±³Çϱâ Àü¿¡ ¼³Á¤ÇÑ WORD ¹øÁö¿¡ 1, 0 ÀÌ¿ÜÀÇ °ªÀ»( ¿¹ ¿¡¼­´Â 2ÀÇ °ª ) ¸ÕÀú ÀÔ·ÂÇÏ¿© ºñ±³°á°ú¸¦ È®ÀÎ.

3) AO_CHECK_MEM_SET ¾Æ³¯·Î±× Ãâ·Âű״ ¿É¼Ç¿¡¼­ ¼³Á¤ÇÑ WORD ¹øÁö¸¦ °­Á¦·Î Ãâ·ÂÇϵµ·Ï ¼³Á¤ ( Extra1 = #MEM# À¸·Î ¼³Á¤ )

4) AI_CHECK_WRITE_STATUS ¾Æ³¯·Î±× ÀÔ·Âű״ PLC_SCAN ű׷Π¼³Á¤ÇÑ WORD ¹øÁö¿¡ ¸ÂÃá´Ù.

 

 

ºí·Ï ¾²±â

ºí·Ï¾²±â´Â ½ºÅ©¸³Æ®ÀÇ PlcScanWriteBlock ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© ´ÙÀ½°ú °°ÀÌ ¼³Á¤ÇÑ´Ù. ºí·Ï ¾²±â´Â WORD(ushort) ´ÜÀ§¸¸ »ç¿ë °¡´ÉÇÏ´Ù.

½ºÅ©¸³Æ® À̸§°ú Çü½Ä : @PlcScanWriteBlock(int port, int station, int address, string extra1, string extra2, object array_value, int array_size);

   ½ºÅ©¸³Æ® ÀÛ¼º ¿¹(ºí·Ï ¾²±â·Î 0 ~ 14 ¹øÁö 15°³ ¿öµå(WORD) ¸¦ 1, 1000, 100, 20, 0, 15, 0, 0, ¡¦ ·Î ¼³Á¤ÇÒ °æ¿ì)

ushort   writeVal[15];

 

val[0] =1;

val[1] = 1000;

val[2] = 100;

val[3] = 20;

val[4] = 0;

val[5] = 15;

@PlcScanWriteBlock(0, 1, 0, "16", "", writeVal, 15);

 

Áß¿ä) Spot Eye Modbus µå¶óÀ̹öÀÇ ºí·Ï ¾²±â´Â WORD ´ÜÀ§¸¸ »ç¿ë °¡´ÉÇÏ´Ù.

¶ÇÇÑ ºí·Ï ¾²±â´Â 10.1.4.3 ÀÌ»óÀÇ ÇÁ·Î±×·¥¿¡¼­¸¸ Áö¿øÇÑ´Ù.

 

 

3. Spot Eye Modbus ÀåºñÀÇ ¸ð½À

<±×¸² 4>´Â Spot Eye Modbus ÀåºñÀÇ ¸ð½ÀÀÌ´Ù.

 

<±×¸² 4> Spot Eye Modbus ÀåºñÀÇ ¸ð½À